module.exports = {
	apps: [
		{
			// 应用名称
			name: "canteen_server",

			// 启动脚本
			// 方式一：直接指定 JS 文件
			// script: "./app.js",

			// 方式二：使用 npm 脚本
			script: 'npm',
			args: 'run start:prod',
            interpreter: 'none', // 告诉 PM2 不要用 Node 解释器
			// 实例数 (对于集群模式)
			instances: "1", // 或数字
			exec_mode: "fork", // 'cluster' 或 'fork'

			// 环境变量
			env: {
				NODE_ENV: "development",
				PORT: 3000
			},
			env_production: {
				NODE_ENV: "production",
				PORT: 18001
			},

			// 文件变动时重启
			watch: false,

			// 忽略监听的文件夹/文件
			ignore_watch: ["node_modules", "logs", ".git"],

			// 日志文件
			error_file: "./logs/err.log",
			out_file: "./logs/out.log",
			log_file: "./logs/combined.log",
			time: true, // 日志中增加时间戳

			// 高级配置
			min_uptime: "60s", // 最小正常运行时间
			max_restarts: 10, // 最大重启次数
			restart_delay: 5000, // 重启延迟(ms)
			kill_timeout: 3000, // 发送 SIGKILL 前的等待时间(ms)

			// 自定义参数
			node_args: "--max_old_space_size=4096"
		}
	],

	// deploy: {
	// 	production: {
	// 		user: "SSH_USERNAME",
	// 		host: "SSH_HOSTMACHINE",
	// 		ref: "origin/master",
	// 		repo: "GIT_REPOSITORY",
	// 		path: "DESTINATION_PATH",
	// 		"pre-deploy-local": "",
	// 		"post-deploy": "npm install && pm2 reload ecosystem.config.js --env production",
	// 		"pre-setup": ""
	// 	}
	// }
};
